
/**
 * @description 各种正则表达式
 * @param {RegExp} pattern  正则表达式
 * @param {String} message 错误提示信息
 */

const url = { // url
  pattern: /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/,
  message: "不是合法的url"
}
const phone = { // 手机号
  pattern: /^[1]\d{10}$/,
  message: "不是有效的手机号"
}
const email = { // 邮件
  pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
  message: "错误的邮箱格式"
}
const userName = { // 用户名
  message: "用户名格式不正确",
  pattern: /^[a-zA-Z0-9_\u4e00-\u9fa5]{1,32}$/
}
const realName = { // 姓名
  message: "姓名格式不正确",
  pattern: /^[a-zA-Z0-9_\u4e00-\u9fa5]{1,32}$/
}
const discount = { // 折扣
  message: "请输入0到1的数",
  pattern: /^[0-1]$|^0\.[0-9]+$/
}
const areaNum = { // 数字
  message: "营业面积格式不正确",
  pattern: /^\d{1,16}$/
}
const brank = { // 银行名称
  message: "请填写正确的开户银行",
  pattern: /^[\u4e00-\u9fa5]{0,}$/
}
const fixedPhone = { // 固定电话
  message: "请填写正确的固话",
  pattern: /\d{3}-\d{8}|\d{4}-\d{7}/
}
const zipCode = { // 邮编
  message: "请填写正确的邮编",
  pattern: /[1-9]\d{5}(?!\d)/
}
const expirationDate = { // 保质期
  message: "保质期格式不正确",
  pattern: /^[1-9]\d*$/
}
const Remind = { // 提醒天数
  message: "临期提醒天数格式不正确",
  pattern: /^[1-9]\d*$/
}
const orderQuantity = { // 最大订货量
  message: "最大订货量格式不正确",
  pattern: /^[1-9]\d*|0$/
}
const than = { // 大于0的数字
  message: "请填写正确的周期",
  pattern: /^\+?[1-9]\d*$/
}
const thane = {
  message: "请输入正确格式的数字",
  pattern: /^(-?)\d+(\.\d+)?$/
}
const byte = { // 备注
  message: "限200字符",
  pattern: /^.{0,200}$/ // ^([\u4e00-\u9fa5]|[0-9]|[,]|[<U+FF0C>]|[<U+201C>]){0,200}$
}
const number = { // 数字
  message: "请输入正确格式的数字",
  pattern: /^[0-9]*$/
}
const num = { // 大于等于0的整数或小数
  message: "请输入正确格式的数字",
  pattern: /^(\+?)\d+(\.\d+)?$/
}
const Chinese = { // 汉字
  message: "请输入正确格式的汉字",
  pattern: /^[\u4e00-\u9fa5]+$/
}
const character = { // 字母
  message: "请输入正确格式的字母",
  pattern: /^[A-Za-z]+$/
}
const cn = { // 字母、数字
  message: "输入不规范",
  pattern: /^[A-Za-z0-9]+$/
}
const cnn = { // 6-12位字母、数字组合
  message: "输入不规范",
  pattern: /^[A-Za-z0-9]{6,12}$/
}
const cnn3 = { // 1-3位字母、数字组合
  message: "输入不规范",
  pattern: /^[A-Za-z0-9]{1,3}$/
}
const Cc = { // 汉字、字母
  message: "输入不规范",
  pattern: /^[a-zA-Z\u4e00-\u9fa5]+$/
}
const Cn = { // 汉字、数字
  message: "输入不规范",
  pattern: /^[\u4e00-\u9fa5a-zA-Z][\u4e00-\u9fa5a-zA-Z\d]+$/
}
const Ccn = { // 汉字、字母、数字
  message: "输入不规范",
  pattern: /^[\u4E00-\u9FA5A-Za-z0-9]+$/
}
const Ccnd = { // 汉字、字母、数字、下划线
  message: "输入不规范",
  pattern: /^[\u4E00-\u9FA5A-Za-z0-9_]+$/
}
const cnd = { // 字母、数字、下划线
  message: "输入不规范",
  pattern: /^\w+$/
}
const clientCode = { // 客户编号
  message: "客户编号格式不正确",
  pattern: /^[A-Za-z0-9_]+$/
}
const clientName = { // 客户名称
  message: "客户名称格式不正确",
  pattern: /^[\u4E00-\u9FA5\w\d]+$/
}
const postcode = { // 邮编格式
  message: "邮编格式不正确",
  pattern: /^[1-9][0-9]{5}$/
}
const tel = { // 固定电话
  message: "固定电话格式不正确",
  pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/
}
const fax = { // 传真
  message: "传真格式不正确",
  pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/
}
const cl = { // 最多输入20个字符
  message: "最多输入20个字符",
  pattern: /^.{1,20}$/
}
const cl15 = { // 最多输入15个字符
  message: "最多输入15个字符",
  pattern: /^.{1,15}$/
}
const nums = { // 1-50000整数
  pattern: /^(?:[1-9]|[1-9]\d{1,2}|[1-4]\d{3}|50000)$/,
  message: "不在范围内"
}
const prcents = {
  pattern: /^(0|([1-9]\d?(\.\d+)?)|100)$/,
  message: "不在范围内"
}

export {
  url,
  phone,
  email,
  userName,
  realName,
  discount,
  areaNum,
  brank,
  fixedPhone,
  zipCode,
  expirationDate,
  Remind,
  orderQuantity,
  than,
  thane,
  byte,
  number,
  num,
  Chinese,
  character,
  cn,
  cnn,
  cnn3,
  Cc,
  Cn,
  Ccn,
  Ccnd,
  cnd,
  clientCode,
  clientName,
  postcode,
  tel,
  fax,
  cl,
  cl15,
  nums,
  prcents,
};